home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
blankery
/
blanker
/
source
/
blankers
/
moire
/
prefs.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-07-25
|
4KB
|
161 lines
/*
* Copyright (c) 1993 Michael D. Bayne.
* All rights reserved.
*
* Please see the documentation accompanying the distribution for distribution and disclaimer information.
*/
#include <exec/types.h>
#include <exec/memory.h>
#include <intuition/intuition.h>
#include <intuition/screens.h>
#include <libraries/gadtools.h>
#include <dos/dos.h>
#include <clib/exec_protos.h>
#include <clib/intuition_protos.h>
#include <clib/gadtools_protos.h>
#include "Moire.h"
#include "Moire_rev.h"
#include "/defs.h"
struct mPrefObject {
LONG xSpeed, ySpeed, Trail, numLines, Cycle;
};
VOID blank( VOID );
struct mPrefObject nP;
STATIC const UBYTE VersTag[] = VERSTAG;
extern struct Task **Task;
extern ULONG Depth, Mode;
extern UBYTE *prefData;
VOID setMoirePrefs( VOID )
{
GT_SetGadgetAttrs( MoireGadgets[GD_TRAIL], MoireWnd, 0L, GTSL_Level, nP.Trail, 0L );
GT_SetGadgetAttrs( MoireGadgets[GD_XSPEED], MoireWnd, 0L, GTSL_Level, nP.xSpeed, 0L );
GT_SetGadgetAttrs( MoireGadgets[GD_YSPEED], MoireWnd, 0L, GTSL_Level, nP.ySpeed, 0L );
GT_SetGadgetAttrs( MoireGadgets[GD_NUMLIN], MoireWnd, 0L, GTSL_Level, nP.numLines, 0L );
GT_SetGadgetAttrs( MoireGadgets[GD_CYCLE], MoireWnd, 0L, GTCY_Active, nP.Cycle, 0L );
}
int OKClicked( VOID )
{
CopyMem( &nP, prefData, sizeof( struct mPrefObject ));
return( QUIT );
}
int TESTClicked( VOID )
{
*Task = FindTask( 0L );
blank();
return( CONTINUE );
}
int CANCELClicked( VOID )
{
return( QUIT );
}
int TRAILClicked( VOID )
{
nP.Trail = MoireMsg.Code;
return( CONTINUE );
}
int CYCLEClicked( VOID )
{
nP.Cycle = MoireMsg.Code;
return( CONTINUE );
}
int XSPEEDClicked( VOID )
{
nP.xSpeed = MoireMsg.Code;
return( CONTINUE );
}
int YSPEEDClicked( VOID )
{
nP.ySpeed = MoireMsg.Code;
return( CONTINUE );
}
int NUMLINClicked( VOID )
{
nP.numLines = MoireMsg.Code;
return( CONTINUE );
}
int MoireVanillaKey( VOID )
{
switch( MoireMsg.Code ) {
case 'o':
return( OKClicked() );
case 't':
return( TESTClicked() );
case 'c':
return( CANCELClicked() );
case 'r':
GT_SetGadgetAttrs( MoireGadgets[GD_TRAIL], MoireWnd, 0L, GTSL_Level, ++(nP.Trail) > 256 ?
nP.Trail = 256 : nP.Trail, 0L );
return( CONTINUE );
case 'R':
GT_SetGadgetAttrs( MoireGadgets[GD_TRAIL], MoireWnd, 0L, GTSL_Level, --(nP.Trail) < 1 ?
nP.Trail = 1 : nP.Trail , 0L );
return( CONTINUE );
case 'x':
GT_SetGadgetAttrs( MoireGadgets[GD_XSPEED], MoireWnd, 0L, GTSL_Level, ++(nP.xSpeed) > 64 ?
nP.xSpeed = 64 : nP.xSpeed, 0L );
return( CONTINUE );
case 'X':
GT_SetGadgetAttrs( MoireGadgets[GD_XSPEED], MoireWnd, 0L, GTSL_Level, --(nP.xSpeed) < 1 ?
nP.xSpeed = 1 : nP.xSpeed, 0L );
return( CONTINUE );
case 'y':
GT_SetGadgetAttrs( MoireGadgets[GD_YSPEED], MoireWnd, 0L, GTSL_Level, ++(nP.ySpeed) > 64 ?
nP.ySpeed = 64 : nP.ySpeed, 0L );
return( CONTINUE );
case 'Y':
GT_SetGadgetAttrs( MoireGadgets[GD_YSPEED], MoireWnd, 0L, GTSL_Level, --(nP.ySpeed) < 1 ?
nP.ySpeed = 1 : nP.ySpeed, 0L );
return( CONTINUE );
case 'n':
GT_SetGadgetAttrs( MoireGadgets[GD_NUMLIN], MoireWnd, 0L, GTSL_Level, ++(nP.ySpeed) > 32 ?
nP.ySpeed = 32 : nP.ySpeed, 0L );
return( CONTINUE );
case 'N':
GT_SetGadgetAttrs( MoireGadgets[GD_NUMLIN], MoireWnd, 0L, GTSL_Level, --(nP.ySpeed) < 2 ?
nP.ySpeed = 2 : nP.ySpeed, 0L );
return( CONTINUE );
default:
return( CONTINUE );
}
}
VOID prefs( LONG command )
{
switch( command ) {
case STARTUP:
CopyMem( prefData, &nP, sizeof( struct mPrefObject ));
if( !SetupScreen() ) {
if( !OpenMoireWindow()) setMoirePrefs();
CloseDownScreen();
}
break;
case IDCMP:
if( HandleMoireIDCMP() != QUIT ) break;
case KILL:
CloseMoireWindow();
}
}
LONG winSig( VOID )
{
return( MoireWnd ? 1L << MoireWnd->UserPort->mp_SigBit : 0L );
}